package com.zmn.plat.services.impl.message;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.zmn.common.dto.StatusDTO;
import com.zmn.common.utils.date.DateUtil;
import com.zmn.plat.model.entity.message.MsgTemplateGroup;
import com.zmn.plat.model.entity.message.MsgTemplateGroupQuery;
import com.zmn.plat.persistence.interfaces.message.MsgTemplateGroupDAO;
import com.zmn.plat.services.interfaces.message.MsgTemplateGroupService;

/**
 * MsgTemplateConfigService 模板组ServiceImpl
 *
 * @author tanghongjun
 */
@Service
public class MsgTemplateGroupServiceImpl implements MsgTemplateGroupService {

    @Resource
    MsgTemplateGroupDAO msgTemplateGroupDAO;

    @Override
    public MsgTemplateGroup findByKey(Integer groupId) {
        return msgTemplateGroupDAO.findByKey(groupId);
    }

    @Override
    public MsgTemplateGroup fingByNameAndModuleAndPlat(String name, Integer module, Integer plat) {
        return msgTemplateGroupDAO.fingByNameAndModuleAndPlat(name, module, plat);
    }

    @Override
    public Integer findKeyForMax() {
        return msgTemplateGroupDAO.findKeyForMax();
    }

    @Override
    public List<MsgTemplateGroup> listPageByQuery(MsgTemplateGroupQuery query) {
        int count = msgTemplateGroupDAO.countByQuery(query);
        query.setTotalCount(count);
        return msgTemplateGroupDAO.listPageByQuery(query);
    }

    @Override
    public List<MsgTemplateGroup> listByQuery(MsgTemplateGroupQuery query) {
        return msgTemplateGroupDAO.listByQuery(query);
    }

    @Override
    public List<MsgTemplateGroup> listAll() {
        return msgTemplateGroupDAO.listAll();
    }

    @Override
    public Integer countByQuery(MsgTemplateGroupQuery query) {
        return msgTemplateGroupDAO.countByQuery(query);
    }

    @Override
    public Integer updateByKey(MsgTemplateGroup msgTemplateGroup) {
        return msgTemplateGroupDAO.updateByKey(msgTemplateGroup);
    }

    @Override
    public Integer updateSortByKey(Integer groupId, Integer sort, String mcStaffRealName) {
        MsgTemplateGroup msgTemplateGroup = new MsgTemplateGroup();
        msgTemplateGroup.setUpdateTime(DateUtil.getNow());
        msgTemplateGroup.setUpdater(mcStaffRealName);
        msgTemplateGroup.setGroupId(groupId);
        msgTemplateGroup.setSort(sort);
        return msgTemplateGroupDAO.updateSortByKey(msgTemplateGroup);
    }

    @Override
    public Integer updateStatus(MsgTemplateGroup msgTemplateGroup) {
        return msgTemplateGroupDAO.updateStatus(msgTemplateGroup);
    }

    @Override
    public Integer updateStatusBatch(StatusDTO dto) {
        return msgTemplateGroupDAO.updateStatusBatch(dto);
    }

    @Override
    public Integer insert(MsgTemplateGroup msgTemplateGroup) {
        return msgTemplateGroupDAO.insert(msgTemplateGroup);
    }

    @Override
    public Integer deleteByKey(Integer groupId) {
        return msgTemplateGroupDAO.deleteByKey(groupId);
    }
}
